<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

</body>
<script>
    /*
    * 1. map() 方法可以将原数组中的所有元素通过一个函数进行处理并放入到一个新数组中并返回该新数组。
        举例：有一个字符串数组，希望转为int数组

    * */
  /*  let arr = ['1','20','-5','3'];
    console.log(arr)

    arr = arr.map(s => parseInt(s));
    console.log(arr)*/
</script>

<script>
    /*
    * 2. reduce(function(),初始值（可选）) ：

        接收一个函数（必须）和一个初始值（可选），该函数接收两个参数：

        - 第一个参数是上一次reduce处理的结果
        - 第二个参数是数组中要处理的下一个元素
        reduce() 会从左到右依次把数组中的元素用reduce处理，并把处理的结果作为下次reduce的第一个参数。如果是 第一次，会把前两个元素作为计算参数，或者把用户指定的初始值作为起始参数

    * */
    let arr = [1,20,-5,3]
    // 没有初始值
    let a = arr.reduce((a, b) => a+b) //等价于 1+20-5+3
    // 设置初始值为1
    let b =arr.reduce((a, b) => a+b, 1)//等价于 1+1+20-5+3
    let c =arr.reduce((a, b) => a*b)//等价于1*20*-5*3
    let d =arr.reduce((a,b) => a*b, 0)//等价于 0*1*20*-5*3
    console.log(a,b,c,d);
</script>
</html>